Docker搭建TeamSpeak服务器

196次阅读
没有评论

共计 3955 个字符,预计需要花费 10 分钟才能阅读完成。

Docker搭建TeamSpeak服务器

Docker搭建TeamSpeak服务器

一.服务器选型

  • 腾讯云 / 阿里云等轻量云服务器
  • 优先选择学生优惠和香港服务器
  • 系统镜像选择CentOS 7.9 Ubuntu 22.04 Debian 12.5 ,优先选用Debian

二、环境配置

名称 IP地址 安装的软件 硬件配置 系统
TeamSpeak Server 10.0.16.17 Docker,Docker-compose 2核4G CentOS 7.9.2009

本次服务器采用腾讯云无忧轻量服务器,CentOS7 7.6镜像,内核升级为6.9.4,关于内核加速自己根据系统搜索对应教程安装即可(非必须)。

Docker搭建TeamSpeak服务器

使用Docker一键安装脚本

curl -fsSL https://get.docker.com | sh
# docker -v
Docker version 27.0.3, build 7d4bcd8

# docker compose --version
Docker Compose version v2.28.1

下面以CentOS 7为例手动安装

# 安装必备工具
yum install yum-utils device-mapper-persistent-data lvm2 -y

# 国内服务器配置阿里云Docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 境外服务器配置官方Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 指定版本安装,本次选择25.0.x版本
yum install docker-ce-25.0.* docker-ce-cli-25.0.* -y

# 设置开机启动服务并立即启动
systemctl enable docker --now

# 最新版Docker已经集成Docker-compose,无需再次安装,只需验证即可
docker compose --version

vim /etc/docker/daemon.json

{
    "registry-mirrors":
  [
    "https://docker.kejilion.pro"
  ],
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 5,
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "30m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "default-shm-size": "128M",
  "debug": false,
  "ipv6": false
}

# 设置完成后重启docker
systemctl daemon-reload && systemctl restart docker

三、配置TeamSpeak

新建一个Docker数据目录,一是方便归纳数据存储目录,二是迁移方便

mkdir -p /data/docker_data 
cd !$ && mkdir teamspeak && cd teamspeak

新建docker-compose.yml 文件,Teamspeak dockerhub镜像仓库

境内服务器自行打开注释,并注释掉Docker官方的镜像使用阿里云镜像


# docker-compose.yml
services:
  teamspeak:
    #registry.cn-chengdu.aliyuncs.com/honeok/teamspeak:3.13.7
    image: teamspeak:3.13.7
    container_name: teamspeak
    restart: unless-stopped
    ports:
      - '9987:9987/udp'  # 语音服务
      - '10011:10011'    # 服务器查询 raw(可选)
      #- '10022:10022'   # 服务器查询 SSH(可选)
      #- '10080:10080'   # 网络请求 http(可选)
      #- '10443:10443'   # 网络请求 https(可选)
      - '30033:30033'    # 文件传输
      #- '41144:41144'   # DNS域名解析(可选)
    volumes:
      - ./ts3server:/var/ts3server
    networks:
      - teamspeak
    environment:
      - TS3SERVER_DB_PLUGIN=ts3db_mariadb
      - TS3SERVER_DB_SQLCREATEPATH=create_mariadb
      - TS3SERVER_DB_HOST=db
      - TS3SERVER_DB_USER=teamspeak
      - TS3SERVER_DB_PASSWORD=teamspeak  # 数据库密码,可自行修改但需和下方数据库变量对应
      - TS3SERVER_DB_NAME=teamspeak
      - TS3SERVER_DB_LOG_DAYS=30         # 日志保留天数
      - TS3SERVER_DB_WAITUNTILREADY=30
      - TS3SERVER_DB_CLIENTKEEPDAYS=1    # 保留未使用的用户标识的天数
      - TS3SERVER_LICENSE=accept
    depends_on:
      - db

  db:
    #registry.cn-chengdu.aliyuncs.com/honeok/mariadb:11.4.2
    image: mariadb:11.4.2
    container_name: teamspeak_db
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=b%aDSmGDFQ&6KaXm
      - MYSQL_DATABASE=teamspeak
      - MYSQL_USER=teamspeak
      - MYSQL_PASSWORD=teamspeak
    volumes:
      - ./mariadb:/var/lib/mysql         # 数据持久化,否则重启数据丢失,后续也无法迁移
    networks:
      - teamspeak
    command:
      - "--character-set-server=utf8mb4"

networks:
  teamspeak:
    driver: bridge

四、启动TeamSpeak服务器

# 后台运行
docker compose up -d

# 关闭服务
docker compose down

# 重启服务
docker compose restart

用TS客户端连接服务器,会弹出对话框要求输入token,输入token后这个账号就是管理员了

  • 第一次启动时会弹出Server Query 管理员账号密码和token,务必妥善保存
  • 如果用docker compose up -d 启动,在当前路径查看日志 docker compose logs -f
Docker搭建TeamSpeak服务器
# 记录下关键值
teamspeak     | ------------------------------------------------------------------
teamspeak     |                       I M P O R T A N T                           
teamspeak     | ------------------------------------------------------------------
teamspeak     |                Server Query Admin Account created                 
teamspeak     |          loginname= "serveradmin", password= "vsZWNew9"
teamspeak     |          apikey= "BABMrxgp_HFPhtCSEQ_LhWIvkQNUVhI_YhQTnG6"
teamspeak     | ------------------------------------------------------------------

teamspeak     | ------------------------------------------------------------------
teamspeak     |                       I M P O R T A N T                           
teamspeak     | ------------------------------------------------------------------
teamspeak     |       ServerAdmin privilege key created, please use it to gain 
teamspeak     |       serveradmin rights for your virtualserver. please
teamspeak     |       also check the doc/privilegekey_guide.txt for details.
teamspeak     | 
teamspeak     |        token=3AlBCVkcTfxXKfysC2jWR7mAAOAmhSTpkMM1M2Uo
teamspeak     | ------------------------------------------------------------------

五、开放规则

云服务器的防火墙设置页添加如下入站规则

  • 9987 UDP (语音)
  • 10011 TCP (ServerQuery)
  • 30033 TCP (文件传输,如需上传频道图标需开启)
  • 其他端口根据自身需求开放

Teamspeak 端口官方详述

六、域名解析

  1. 添加一条A类型的规则,指向服务器ip地址。此处 ts -> xxx.xxx.xxx.xxx 即解析域名 ts.honeok.com
  2. 添加一条SRV类型的规则,如图所示:
Docker搭建TeamSpeak服务器

七、使用客户端连接

使用上述记录的token 即可成功登录

Docker搭建TeamSpeak服务器
Docker搭建TeamSpeak服务器

图标优化teamspeak服务器 Teamspeak ions

正文完
 0
611
版权声明:本站原创文章,由 611 于2024-10-12发表,共计3955字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码